#define  _CRT_SECURE_NO_WARNINGS
#include "planet/planet.h"
#include "bileton/bileton.h"
using namespace std;
int rzd();
int planeti();
int main(){
    #ifdef WIN32
    system("chcp 65001");
    #else
    setlocale(LC_ALL, "Rus");
    #endif
    short what;
    cout << "Выберете задачу?(1 - планетарий или 0 - ржд)" << endl;
    cin >> what;
    if (what == 0){
        rzd();}
    else{
        planeti();}
    return 0;

}
int rzd(){
    const char *filename = "bileton.txt";
    bilet *bilets = nullptr;
    int bilets_n = 0;
    int targ;

    cout << "1 - чтение бд из файла \n"
    << "2 - запись бд в файл \n"
    << "3 - сортировка бд \n"
    << "4 - добавление нового объекта в бд \n"
    << "5 - удаление объекта из бд  \n"
    << "6 - редактирование бд \n"
    << "7 - вывод бд на экран \n"
    << "8 - выход \n";
    while(true){
       switch (menu2()) {
           case 1: read_database2(filename, bilets, bilets_n);
               break;
           case 2: write_database2(filename, bilets, bilets_n);
               break;
           case 3: sort_database2(bilets, bilets_n);
               break;
           case 4: add2(bilets, bilets_n);
               break;
           case 5:
               if ((targ = find2(bilets, bilets_n)) >= 0) {
                   remove2(bilets, bilets_n, targ);
               }
               break;
           case 6:
               if ((targ = find2(bilets, bilets_n)) >= 0) {
                   bilets[targ].edit2();
               }
               break;
           case 7: print_database2(bilets, bilets_n);
               break;
           case 8:
               if (bilets_n != 0) {
                   delete[] bilets;
               }
               return 0;
           default: cout << "надо вводить от 1 до 8" << endl;
               break;
       }
   }
    return 0;
}

int planeti() {
    const char *filename = "solarr.txt";
    Planet *planets = nullptr;
    int planets_count = 0;
    int id;

    cout << "1 - чтение бд из файла \n"
    << "2 - запись бд в файл \n"
    << "3 - сортировка бд \n"
    << "4 - добавление нового объекта в бд \n"
    << "5 - удаление объекта из бд  \n"
    << "6 - редактирование бд \n"
    << "7 - вывод бд на экран \n"
    << "8 - выход \n";
    while(true){
       switch (menu()) {
           case 1: read_database(filename, planets, planets_count);
               break;
           case 2: write_database(filename, planets, planets_count);
               break;
           case 3: sort_database(planets, planets_count);
               break;
           case 4: add(planets, planets_count);
               break;
           case 5:
               if ((id = find(planets, planets_count)) >= 0) {
                   remove(planets, planets_count, id);
               }
               break;
           case 6:
               if ((id = find(planets, planets_count)) >= 0) {
                   planets[id].edit();
               }
               break;
           case 7: print_database(planets, planets_count);
               break;
           case 8:
               if (planets_count != 0) {
                   delete[] planets;
               }
               return 0;
           default: cout << "надо вводить от 1 до 8" << endl;
               break;
       }
   }
    return 0;
}
